/***************************************************************************

-------------------
    begin                : 
    copyright            : kuzkok
    email                : kuzkok at gmail.com

***************************************************************************
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*   
*   Данная программа является свободным программным обеспечением;         *
*   Вы можете распространять ее и/или модифицировать в соответствии с     *
*   GNU General Public License опубликованной Фондом свободного           *
*   программного обеспечения; используемая версия лицензии - 2 или        *
*   (по вашему выбору) любая более поздняя                                *
***************************************************************************/

#ifndef CONTROLPOINT_H
#define CONTROLPOINT_H

#include "centerlinepoint.h"

class ControlPoint : public CenterlinePoint
{
    Q_OBJECT

public:
    ControlPoint();
    explicit ControlPoint(QUuid theEventID);

    double stationValue()
    {
        return mStationValue;
    }

    double controlPointAngle()
    {
        return mControlPointAngle;
    }

    QUuid controlPointType()
    {
        return mControlPointType;
    }

    QString pidDirection()
    {
        return mPIDDirection;
    }

    int subTypeCD()
    {
        return mSubTypeCD;
    }

signals:

public slots:
    void setStationValue(double value)
    {
        mStationValue = value;
    }

    void setControlPointAngle(double value)
    {
        mControlPointAngle = value;
    }

    void setControlPointType(QUuid value)
    {
        mControlPointType = value;
    }

    void setPIDDirection(QString value)
    {
        mPIDDirection = value;
    }

    void setSubTypeCD(int value)
    {
        mSubTypeCD = value;
    }

protected:
    void buildInsertStatement();
    void buildUpdateStatement();
    void bindQueryValues(QSqlQuery &query);

private:
    double
            mStationValue,
            mControlPointAngle;
    QUuid mControlPointType;
    QString mPIDDirection;
    int mSubTypeCD;



};

#endif // CONTROLPOINT_H
